package com.yuncheng.spcyApi.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuncheng.spcyApi.entity.SpcyPxCjry;
import com.yuncheng.spcyApi.entity.SpcyPxJbxx;
import com.yuncheng.common.base.service.BaseService;
import com.yuncheng.spcyApi.vo.common.OrderItemVo;
import com.yuncheng.spcyApi.vo.common.PageVo;

import java.lang.reflect.InvocationTargetException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @Description: 审评查验-培训基本信息
 * @Author: yuncheng
 * @Date: 2023-04-14
 * @Version: V1.0
 */
public interface ISpcyPxJbxxService extends BaseService<SpcyPxJbxx> {

    // 分页查询
    Page<SpcyPxJbxx> pageList(SpcyPxJbxx query, String gjz, PageVo pageVo, OrderItemVo orderItemVo);

    // 添加计划
    SpcyPxJbxx addLxjh(SpcyPxJbxx lxjh);

    // 添加继续教育
    SpcyPxJbxx addJxjy(SpcyPxJbxx lxjh);

    // 修改计划
    void updateLxjh(HashMap<String, String> buffer) throws InvocationTargetException, IllegalAccessException;

    // 修改继续教育
    void updateJxjy(HashMap<String, String> buffer) throws InvocationTargetException, IllegalAccessException;

    // 删除计划
    List<String> deleteLxjh(String ids);

    // 删除继续教育
    void deleteJxjy(String ids);

    // 删除计划
    void deleteLxjh(List<String> idsList);

    /**
     * 同步培训考试信息
     * @param pxjbxxid 培训基本信息id
     * @param userid 用户id
     * @param df 答卷得分
     */
    void syncCjryKsxx(String pxjbxxid, String userid, String df);

    /**
     * 验证人员参加考试是否合格
     * @param pxjbxxid 培训基本信息id
     * @param df 答卷得分
     * @return 通过/不通过
     */
    Map verifyCjryKssfgf(String pxjbxxid, String userid, String df, String orghgx);

    /**
     * 培训参加人员-同步生成个人培训记录
     * @param pxJbxx 培训基本信息
     * @param cjryList 培训参加人员
     * @param errorMsg 错误信息
     * @param pxjbxxid 培训基本信息id
     * @return
     */
    StringBuffer syncGenCjryPxjl(SpcyPxJbxx pxJbxx, List<SpcyPxCjry> cjryList, StringBuffer errorMsg, String pxjbxxid);

    /**
     * 遴选人员-同步生成个人培训记录
     */
    void syncGenLxUserPxjl(SpcyPxJbxx lxjh, String flxjhid);

}
